/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufc.quixada.adrs.comandos.visit;

import br.ufc.quixada.adrs.interfaces.Comando;
import br.ufc.quixada.adrs.model.Produtor;
import br.ufc.quixada.adrs.model.Estado;
import br.ufc.quixada.adrs.model.Municipio;
import br.ufc.quixada.adrs.service.ProdutorService;
import br.ufc.quixada.adrs.service.EstadoService;
import br.ufc.quixada.adrs.service.MunicipioService;
import br.ufc.quixada.adrs.util.Msg;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author Balthazar
 */
public class CmdVisitMontaRelatorioGrPassoUm implements Comando {

    public String executa(HttpServletRequest request, HttpServletResponse response) {
        HttpSession session = request.getSession(true);
        String estado = (String) request.getParameter("estado");
        String municipio = (String) request.getParameter("cidade");

        Estado estadoSele = null;
        Municipio municipioSele = null;
        ProdutorService pServ = new ProdutorService();
        List<Produtor> listProdutor = null;

        if (estado == null || estado.trim().equals("-10")) {
            session.setAttribute("erro", Msg.EMPTY_SELECTION_ERROR_ESTADO);
            return "/visit/visit_monta_relatorio_gr_passo_um.jsp";
        }
        if (estado.equals("TODOS") || estado.trim().equals("-1")) {
            estadoSele = new Estado();
            estadoSele.setId(-1l);
            estadoSele.setNome("TODOS");
            municipioSele = new Municipio();
            municipioSele.setNome("TODOS");
            municipioSele.setId(-1l);
            listProdutor = pServ.getAllProdutores();
        } else if (municipio.equals("TODOS") || municipio.trim().equals("-1")) {
            estadoSele = new EstadoService().getEstadoById(Long.parseLong(estado));
            municipioSele = new Municipio();
            municipioSele.setNome("TODOS");
            municipioSele.setId(-1l);
            listProdutor = pServ.getByEstadoId(estadoSele.getId());
        } else {
            estadoSele = new EstadoService().getEstadoById(Long.parseLong(estado));
            municipioSele = new MunicipioService().getMunicipioById(Long.parseLong(municipio));
            listProdutor = pServ.getByMunicipioId(municipioSele.getId());
        }

        if (listProdutor == null || listProdutor.isEmpty()) {
            session.setAttribute("erro", Msg.NOT_FOUND_ERROR_PRODUTORES);
            return "/visit/visit_monta_relatorio_gr_passo_um.jsp";
        }

        session.setAttribute("estadoSelecionado", estadoSele);
        session.setAttribute("municipioSelecionado", municipioSele);
        session.setAttribute("listProdutor", listProdutor);

        return "/visit/relatorio_gr_gerado.jsp";
    }
}
